#include "stdafx.h"

#include "Mask.h"

const Mask palagyi_tables[][21] = {
    {// dir = 0
        // M1
        Mask( BV( BP(7,7,7), BP(0,2,0), BP(0,2,0) ), BV( BP(0,0,0), BP(0,2,0), BP(0,2,0) ), BV( BP(0,0,0), BP(7,5,7), BP(7,5,7) ) ),
        // M2
        Mask( BV( BP(0,7,7), BP(2,2,0), BP(0,2,0) ), BV( BP(0,0,0), BP(2,2,0), BP(0,2,0) ) ),
        Mask( BV( BP(3,3,3), BP(0,6,0), BP(0,2,0) ), BV( BP(0,0,0), BP(0,6,0), BP(0,2,0) ) ),
        Mask( BV( BP(7,7,0), BP(0,2,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,2,2), BP(0,2,0) ) ),
        Mask( BV( BP(6,6,6), BP(0,3,0), BP(0,2,0) ), BV( BP(0,0,0), BP(0,3,0), BP(0,2,0) ) ),
        // M3
        Mask( BV( BP(0,3,3), BP(2,6,0), BP(0,2,0) ), BV( BP(0,0,0), BP(2,6,0), BP(0,2,0) ) ),
        Mask( BV( BP(0,6,6), BP(2,3,0), BP(0,2,0) ), BV( BP(0,0,0), BP(2,3,0), BP(0,2,0) ) ),
        Mask( BV( BP(3,3,0), BP(0,6,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,6,2), BP(0,2,0) ) ),
        Mask( BV( BP(6,6,0), BP(0,3,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,3,2), BP(0,2,0) ) ),
        // M4
        Mask( BV( BP(7,7,7), BP(4,2,0), BP(0,2,0) ), BV( BP(4,0,0), BP(4,2,0), BP(0,2,0) ) ),
        Mask( BV( BP(7,7,7), BP(1,2,0), BP(0,2,0) ), BV( BP(1,0,0), BP(1,2,0), BP(0,2,0) ) ),
        Mask( BV( BP(7,7,7), BP(0,2,4), BP(0,2,0) ), BV( BP(0,0,4), BP(0,2,4), BP(0,2,0) ) ),
        Mask( BV( BP(7,7,7), BP(0,2,1), BP(0,2,0) ), BV( BP(0,0,1), BP(0,2,1), BP(0,2,0) ) ),
        // M5
        Mask( BV( BP(7,7,7), BP(0,2,7), BP(2,2,7) ), BV( BP(0,0,0), BP(0,2,0), BP(2,0,0) ), BV( BP(0,0,0), BP(7,5,0), BP(5,5,0) ) ),
        Mask( BV( BP(7,7,7), BP(1,3,1), BP(1,7,1) ), BV( BP(0,0,0), BP(0,2,0), BP(0,4,0) ), BV( BP(0,0,0), BP(6,4,6), BP(6,0,6) ) ),
        Mask( BV( BP(7,7,7), BP(7,2,0), BP(7,2,2) ), BV( BP(0,0,0), BP(0,2,0), BP(0,0,2) ), BV( BP(0,0,0), BP(0,5,7), BP(0,5,5) ) ),
        Mask( BV( BP(7,7,7), BP(4,6,4), BP(4,7,4) ), BV( BP(0,0,0), BP(0,2,0), BP(0,1,0) ), BV( BP(0,0,0), BP(3,1,3), BP(3,0,3) ) ),
        // M6
        Mask( BV( BP(7,7,7), BP(0,3,3), BP(2,7,3) ), BV( BP(0,0,0), BP(0,2,0), BP(2,4,0) ) ),
        Mask( BV( BP(7,7,7), BP(0,6,6), BP(2,7,6) ), BV( BP(0,0,0), BP(0,2,0), BP(2,1,0) ) ),
        Mask( BV( BP(7,7,7), BP(3,3,0), BP(3,7,2) ), BV( BP(0,0,0), BP(0,2,0), BP(0,4,2) ) ),
        Mask( BV( BP(7,7,7), BP(6,6,0), BP(6,7,2) ), BV( BP(0,0,0), BP(0,2,0), BP(0,1,2) ) ),
    },
    {// dir = 1
        // M1
        Mask( BV( BP(0,2,0), BP(0,2,0), BP(7,7,7) ), BV( BP(0,2,0), BP(0,2,0), BP(0,0,0) ), BV( BP(7,5,7), BP(7,5,7), BP(0,0,0) ) ),
        // M2
        Mask( BV( BP(0,2,0), BP(0,2,2), BP(7,7,0) ), BV( BP(0,2,0), BP(0,2,2), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(0,6,0), BP(3,3,3) ), BV( BP(0,2,0), BP(0,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(2,2,0), BP(0,7,7) ), BV( BP(0,2,0), BP(2,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(0,3,0), BP(6,6,6) ), BV( BP(0,2,0), BP(0,3,0), BP(0,0,0) ) ),
        // M3
        Mask( BV( BP(0,2,0), BP(0,6,2), BP(3,3,0) ), BV( BP(0,2,0), BP(0,6,2), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(0,3,2), BP(6,6,0) ), BV( BP(0,2,0), BP(0,3,2), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(2,6,0), BP(0,3,3) ), BV( BP(0,2,0), BP(2,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(2,3,0), BP(0,6,6) ), BV( BP(0,2,0), BP(2,3,0), BP(0,0,0) ) ),
        // M4
        Mask( BV( BP(0,2,0), BP(0,2,4), BP(7,7,7) ), BV( BP(0,2,0), BP(0,2,4), BP(0,0,4) ) ),
        Mask( BV( BP(0,2,0), BP(0,2,1), BP(7,7,7) ), BV( BP(0,2,0), BP(0,2,1), BP(0,0,1) ) ),
        Mask( BV( BP(0,2,0), BP(4,2,0), BP(7,7,7) ), BV( BP(0,2,0), BP(4,2,0), BP(4,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(1,2,0), BP(7,7,7) ), BV( BP(0,2,0), BP(1,2,0), BP(1,0,0) ) ),
        // M5
        Mask( BV( BP(7,2,2), BP(7,2,0), BP(7,7,7) ), BV( BP(0,0,2), BP(0,2,0), BP(0,0,0) ), BV( BP(0,5,5), BP(0,5,7), BP(0,0,0) ) ),
        Mask( BV( BP(1,7,1), BP(1,3,1), BP(7,7,7) ), BV( BP(0,4,0), BP(0,2,0), BP(0,0,0) ), BV( BP(6,0,6), BP(6,4,6), BP(0,0,0) ) ),
        Mask( BV( BP(2,2,7), BP(0,2,7), BP(7,7,7) ), BV( BP(2,0,0), BP(0,2,0), BP(0,0,0) ), BV( BP(5,5,0), BP(7,5,0), BP(0,0,0) ) ),
        Mask( BV( BP(4,7,4), BP(4,6,4), BP(7,7,7) ), BV( BP(0,1,0), BP(0,2,0), BP(0,0,0) ), BV( BP(3,0,3), BP(3,1,3), BP(0,0,0) ) ),
        // M6
        Mask( BV( BP(3,7,2), BP(3,3,0), BP(7,7,7) ), BV( BP(0,4,2), BP(0,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(6,7,2), BP(6,6,0), BP(7,7,7) ), BV( BP(0,1,2), BP(0,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(2,7,3), BP(0,3,3), BP(7,7,7) ), BV( BP(2,4,0), BP(0,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(2,7,6), BP(0,6,6), BP(7,7,7) ), BV( BP(2,1,0), BP(0,2,0), BP(0,0,0) ) ),
    },
    {// dir = 2
        // M1
        Mask( BV( BP(7,0,0), BP(7,2,2), BP(7,0,0) ), BV( BP(0,0,0), BP(0,2,2), BP(0,0,0) ), BV( BP(0,7,7), BP(0,5,5), BP(0,7,7) ) ),
        // M2
        Mask( BV( BP(7,0,0), BP(7,2,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,2,2), BP(0,2,0) ) ),
        Mask( BV( BP(3,0,0), BP(3,6,2), BP(3,0,0) ), BV( BP(0,0,0), BP(0,6,2), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(7,2,2), BP(7,0,0) ), BV( BP(0,2,0), BP(0,2,2), BP(0,0,0) ) ),
        Mask( BV( BP(6,0,0), BP(6,3,2), BP(6,0,0) ), BV( BP(0,0,0), BP(0,3,2), BP(0,0,0) ) ),
        // M3
        Mask( BV( BP(3,0,0), BP(3,6,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,6,2), BP(0,2,0) ) ),
        Mask( BV( BP(6,0,0), BP(6,3,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,3,2), BP(0,2,0) ) ),
        Mask( BV( BP(0,2,0), BP(3,6,2), BP(3,0,0) ), BV( BP(0,2,0), BP(0,6,2), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(6,3,2), BP(6,0,0) ), BV( BP(0,2,0), BP(0,3,2), BP(0,0,0) ) ),
        // M4
        Mask( BV( BP(7,0,0), BP(7,2,2), BP(7,4,0) ), BV( BP(0,0,0), BP(0,2,2), BP(4,4,0) ) ),
        Mask( BV( BP(7,0,0), BP(7,2,2), BP(7,1,0) ), BV( BP(0,0,0), BP(0,2,2), BP(1,1,0) ) ),
        Mask( BV( BP(7,4,0), BP(7,2,2), BP(7,0,0) ), BV( BP(4,4,0), BP(0,2,2), BP(0,0,0) ) ),
        Mask( BV( BP(7,1,0), BP(7,2,2), BP(7,0,0) ), BV( BP(1,1,0), BP(0,2,2), BP(0,0,0) ) ),
        // M5
        Mask( BV( BP(7,7,7), BP(7,2,2), BP(7,0,2) ), BV( BP(0,0,0), BP(0,2,0), BP(0,0,2) ), BV( BP(0,0,0), BP(0,5,5), BP(0,7,5) ) ),
        Mask( BV( BP(7,1,1), BP(7,3,7), BP(7,1,1) ), BV( BP(0,0,0), BP(0,2,4), BP(0,0,0) ), BV( BP(0,6,6), BP(0,4,0), BP(0,6,6) ) ),
        Mask( BV( BP(7,0,2), BP(7,2,2), BP(7,7,7) ), BV( BP(0,0,2), BP(0,2,0), BP(0,0,0) ), BV( BP(0,7,5), BP(0,5,5), BP(0,0,0) ) ),
        Mask( BV( BP(7,4,4), BP(7,6,7), BP(7,4,4) ), BV( BP(0,0,0), BP(0,2,1), BP(0,0,0) ), BV( BP(0,3,3), BP(0,1,0), BP(0,3,3) ) ),
        // M6
        Mask( BV( BP(7,3,3), BP(7,3,7), BP(7,0,2) ), BV( BP(0,0,0), BP(0,2,4), BP(0,0,2) ) ),
        Mask( BV( BP(7,6,6), BP(7,6,7), BP(7,0,2) ), BV( BP(0,0,0), BP(0,2,1), BP(0,0,2) ) ),
        Mask( BV( BP(7,0,2), BP(7,3,7), BP(7,3,3) ), BV( BP(0,0,2), BP(0,2,4), BP(0,0,0) ) ),
        Mask( BV( BP(7,0,2), BP(7,6,7), BP(7,6,6) ), BV( BP(0,0,2), BP(0,2,1), BP(0,0,0) ) ),
    },
    {// dir = 3
        // M1
        Mask( BV( BP(0,0,7), BP(2,2,7), BP(0,0,7) ), BV( BP(0,0,0), BP(2,2,0), BP(0,0,0) ), BV( BP(7,7,0), BP(5,5,0), BP(7,7,0) ) ),
        // M2
        Mask( BV( BP(0,2,0), BP(2,2,7), BP(0,0,7) ), BV( BP(0,2,0), BP(2,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,0,3), BP(2,6,3), BP(0,0,3) ), BV( BP(0,0,0), BP(2,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,0,7), BP(2,2,7), BP(0,2,0) ), BV( BP(0,0,0), BP(2,2,0), BP(0,2,0) ) ),
        Mask( BV( BP(0,0,6), BP(2,3,6), BP(0,0,6) ), BV( BP(0,0,0), BP(2,3,0), BP(0,0,0) ) ),
        // M3
        Mask( BV( BP(0,2,0), BP(2,6,3), BP(0,0,3) ), BV( BP(0,2,0), BP(2,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(2,3,6), BP(0,0,6) ), BV( BP(0,2,0), BP(2,3,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,0,3), BP(2,6,3), BP(0,2,0) ), BV( BP(0,0,0), BP(2,6,0), BP(0,2,0) ) ),
        Mask( BV( BP(0,0,6), BP(2,3,6), BP(0,2,0) ), BV( BP(0,0,0), BP(2,3,0), BP(0,2,0) ) ),
        // M4
        Mask( BV( BP(0,4,7), BP(2,2,7), BP(0,0,7) ), BV( BP(0,4,4), BP(2,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,1,7), BP(2,2,7), BP(0,0,7) ), BV( BP(0,1,1), BP(2,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,0,7), BP(2,2,7), BP(0,4,7) ), BV( BP(0,0,0), BP(2,2,0), BP(0,4,4) ) ),
        Mask( BV( BP(0,0,7), BP(2,2,7), BP(0,1,7) ), BV( BP(0,0,0), BP(2,2,0), BP(0,1,1) ) ),
        // M5
        Mask( BV( BP(2,0,7), BP(2,2,7), BP(7,7,7) ), BV( BP(2,0,0), BP(0,2,0), BP(0,0,0) ), BV( BP(5,7,0), BP(5,5,0), BP(0,0,0) ) ),
        Mask( BV( BP(1,1,7), BP(7,3,7), BP(1,1,7) ), BV( BP(0,0,0), BP(4,2,0), BP(0,0,0) ), BV( BP(6,6,0), BP(0,4,0), BP(6,6,0) ) ),
        Mask( BV( BP(7,7,7), BP(2,2,7), BP(2,0,7) ), BV( BP(0,0,0), BP(0,2,0), BP(2,0,0) ), BV( BP(0,0,0), BP(5,5,0), BP(5,7,0) ) ),
        Mask( BV( BP(4,4,7), BP(7,6,7), BP(4,4,7) ), BV( BP(0,0,0), BP(1,2,0), BP(0,0,0) ), BV( BP(3,3,0), BP(0,1,0), BP(3,3,0) ) ),
        // M6
        Mask( BV( BP(2,0,7), BP(7,3,7), BP(3,3,7) ), BV( BP(2,0,0), BP(4,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(2,0,7), BP(7,6,7), BP(6,6,7) ), BV( BP(2,0,0), BP(1,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(3,3,7), BP(7,3,7), BP(2,0,7) ), BV( BP(0,0,0), BP(4,2,0), BP(2,0,0) ) ),
        Mask( BV( BP(6,6,7), BP(7,6,7), BP(2,0,7) ), BV( BP(0,0,0), BP(1,2,0), BP(2,0,0) ) ),
    },
    {// dir = 4
        // M1
        Mask( BV( BP(1,1,1), BP(1,7,1), BP(1,1,1) ), BV( BP(0,0,0), BP(0,6,0), BP(0,0,0) ), BV( BP(6,6,6), BP(6,0,6), BP(6,6,6) ) ),
        // M2
        Mask( BV( BP(0,1,1), BP(2,7,1), BP(0,1,1) ), BV( BP(0,0,0), BP(2,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(1,7,1), BP(1,1,1) ), BV( BP(0,2,0), BP(0,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(1,1,0), BP(1,7,2), BP(1,1,0) ), BV( BP(0,0,0), BP(0,6,2), BP(0,0,0) ) ),
        Mask( BV( BP(1,1,1), BP(1,7,1), BP(0,2,0) ), BV( BP(0,0,0), BP(0,6,0), BP(0,2,0) ) ),
        // M3
        Mask( BV( BP(0,2,0), BP(2,7,1), BP(0,1,1) ), BV( BP(0,2,0), BP(2,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(0,1,1), BP(2,7,1), BP(0,2,0) ), BV( BP(0,0,0), BP(2,6,0), BP(0,2,0) ) ),
        Mask( BV( BP(0,2,0), BP(1,7,2), BP(1,1,0) ), BV( BP(0,2,0), BP(0,6,2), BP(0,0,0) ) ),
        Mask( BV( BP(1,1,0), BP(1,7,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,6,2), BP(0,2,0) ) ),
        // M4
        Mask( BV( BP(3,1,1), BP(1,7,1), BP(1,1,1) ), BV( BP(3,0,0), BP(0,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(1,1,1), BP(1,7,1), BP(3,1,1) ), BV( BP(0,0,0), BP(0,6,0), BP(3,0,0) ) ),
        Mask( BV( BP(1,1,3), BP(1,7,1), BP(1,1,1) ), BV( BP(0,0,3), BP(0,6,0), BP(0,0,0) ) ),
        Mask( BV( BP(1,1,1), BP(1,7,1), BP(1,1,3) ), BV( BP(0,0,0), BP(0,6,0), BP(0,0,3) ) ),
        // M5
        Mask( BV( BP(1,1,7), BP(5,7,7), BP(1,1,7) ), BV( BP(0,0,0), BP(4,2,0), BP(0,0,0) ), BV( BP(6,6,0), BP(2,0,0), BP(6,6,0) ) ),
        Mask( BV( BP(1,5,1), BP(1,7,1), BP(7,7,7) ), BV( BP(0,4,0), BP(0,2,0), BP(0,0,0) ), BV( BP(6,2,6), BP(6,0,6), BP(0,0,0) ) ),
        Mask( BV( BP(7,1,1), BP(7,7,5), BP(7,1,1) ), BV( BP(0,0,0), BP(0,2,4), BP(0,0,0) ), BV( BP(0,6,6), BP(0,0,2), BP(0,6,6) ) ),
        Mask( BV( BP(7,7,7), BP(1,7,1), BP(1,5,1) ), BV( BP(0,0,0), BP(0,2,0), BP(0,4,0) ), BV( BP(0,0,0), BP(6,0,6), BP(6,2,6) ) ),
        // M6
        Mask( BV( BP(1,5,1), BP(5,7,7), BP(1,7,7) ), BV( BP(0,4,0), BP(4,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(1,7,7), BP(5,7,7), BP(1,5,1) ), BV( BP(0,0,0), BP(4,2,0), BP(0,4,0) ) ),
        Mask( BV( BP(1,5,1), BP(7,7,5), BP(7,7,1) ), BV( BP(0,4,0), BP(0,2,4), BP(0,0,0) ) ),
        Mask( BV( BP(7,7,1), BP(7,7,5), BP(1,5,1) ), BV( BP(0,0,0), BP(0,2,4), BP(0,4,0) ) ),
    },
    {// dir = 5
        // M1
        Mask( BV( BP(4,4,4), BP(4,7,4), BP(4,4,4) ), BV( BP(0,0,0), BP(0,3,0), BP(0,0,0) ), BV( BP(3,3,3), BP(3,0,3), BP(3,3,3) ) ),
        // M2
        Mask( BV( BP(0,4,4), BP(2,7,4), BP(0,4,4) ), BV( BP(0,0,0), BP(2,3,0), BP(0,0,0) ) ),
        Mask( BV( BP(4,4,4), BP(4,7,4), BP(0,2,0) ), BV( BP(0,0,0), BP(0,3,0), BP(0,2,0) ) ),
        Mask( BV( BP(4,4,0), BP(4,7,2), BP(4,4,0) ), BV( BP(0,0,0), BP(0,3,2), BP(0,0,0) ) ),
        Mask( BV( BP(0,2,0), BP(4,7,4), BP(4,4,4) ), BV( BP(0,2,0), BP(0,3,0), BP(0,0,0) ) ),
        // M3
        Mask( BV( BP(0,4,4), BP(2,7,4), BP(0,2,0) ), BV( BP(0,0,0), BP(2,3,0), BP(0,2,0) ) ),
        Mask( BV( BP(0,2,0), BP(2,7,4), BP(0,4,4) ), BV( BP(0,2,0), BP(2,3,0), BP(0,0,0) ) ),
        Mask( BV( BP(4,4,0), BP(4,7,2), BP(0,2,0) ), BV( BP(0,0,0), BP(0,3,2), BP(0,2,0) ) ),
        Mask( BV( BP(0,2,0), BP(4,7,2), BP(4,4,0) ), BV( BP(0,2,0), BP(0,3,2), BP(0,0,0) ) ),
        // M4
        Mask( BV( BP(4,4,4), BP(4,7,4), BP(6,4,4) ), BV( BP(0,0,0), BP(0,3,0), BP(6,0,0) ) ),
        Mask( BV( BP(6,4,4), BP(4,7,4), BP(4,4,4) ), BV( BP(6,0,0), BP(0,3,0), BP(0,0,0) ) ),
        Mask( BV( BP(4,4,4), BP(4,7,4), BP(4,4,6) ), BV( BP(0,0,0), BP(0,3,0), BP(0,0,6) ) ),
        Mask( BV( BP(4,4,6), BP(4,7,4), BP(4,4,4) ), BV( BP(0,0,6), BP(0,3,0), BP(0,0,0) ) ),
        // M5
        Mask( BV( BP(4,4,7), BP(5,7,7), BP(4,4,7) ), BV( BP(0,0,0), BP(1,2,0), BP(0,0,0) ), BV( BP(3,3,0), BP(2,0,0), BP(3,3,0) ) ),
        Mask( BV( BP(7,7,7), BP(4,7,4), BP(4,5,4) ), BV( BP(0,0,0), BP(0,2,0), BP(0,1,0) ), BV( BP(0,0,0), BP(3,0,3), BP(3,2,3) ) ),
        Mask( BV( BP(7,4,4), BP(7,7,5), BP(7,4,4) ), BV( BP(0,0,0), BP(0,2,1), BP(0,0,0) ), BV( BP(0,3,3), BP(0,0,2), BP(0,3,3) ) ),
        Mask( BV( BP(4,5,4), BP(4,7,4), BP(7,7,7) ), BV( BP(0,1,0), BP(0,2,0), BP(0,0,0) ), BV( BP(3,2,3), BP(3,0,3), BP(0,0,0) ) ),
        // M6
        Mask( BV( BP(4,7,7), BP(5,7,7), BP(4,5,4) ), BV( BP(0,0,0), BP(1,2,0), BP(0,1,0) ) ),
        Mask( BV( BP(4,5,4), BP(5,7,7), BP(4,7,7) ), BV( BP(0,1,0), BP(1,2,0), BP(0,0,0) ) ),
        Mask( BV( BP(7,7,4), BP(7,7,5), BP(4,5,4) ), BV( BP(0,0,0), BP(0,2,1), BP(0,1,0) ) ),
        Mask( BV( BP(4,5,4), BP(7,7,5), BP(7,7,4) ), BV( BP(0,1,0), BP(0,2,1), BP(0,0,0) ) ),
    },
};
